package com.company.笔试.双指针之倒数第k个节点;

import com.company.笔试.ListNode;

/**
 * @ClassName Solution
 * @Description TODO
 * @Author ylr
 * @Date 2021/7/22 20:16
 * @Version 1.0
 */
public class Solution {
    public static void main(String[] args) {

    }
    /**
     * 寻找链表中倒数第k个节点
     * <br/>
     * @param pHead	头节点
     * @param K	倒数第k
     * @return com.company.笔试.ListNode
     * @author ylr
     * @date 2021/7/22 20:19
     **/
    public ListNode FindKthToTail(ListNode pHead, int K) {
        if (pHead == null) return null;
        ListNode p1 = pHead;
        while (p1!=null){
            if (K>0){//p1指针先走k步

                p1 = p1.getNext();
                K--;

                continue;
            }
            //p1和pHead一起走，如果p1结束直接返回pHead
            p1 = p1.getNext();
            pHead = pHead.getNext();

        }
        if (K>0) return null;//如果K步摸鱼走完，说明链表长度小于K 返回null
        return pHead;
    }

}
